package com.jt.vo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

/*
    该VO对象是系统返回值VO对象.主要包含3个属性
    1.定义状态码   200表示执行成功    201 执行失败  人为定义的(和浏览器没关系)业务定义.
    2.定义返回值信息   服务器可能会给用户一些提示信息. 例如 执行成功,用户名或密码错误等
    3.定义返回值对象   服务器在后端处理完成业务之后,将对象返回给前端.
 */
@Data
@Accessors(chain = true)
@NoArgsConstructor
@AllArgsConstructor
public class SysResult {

	private Integer status; 	//200成功  201失败
	private String msg;			//服务端提示信息
	private Object data;		//服务端返回前端的业务数据
	
		//准备工具API 方便用户使用
		//业务调用失败，返回失败信息
		public static SysResult  fail() {
			
			return new SysResult(201, "业务调用失败", null);
		}
		
		//成功方式1 只返回状态码信息
		public static SysResult success() {
			
			return new SysResult(200, "业务调用成功!!!", null);
		}
		
		//成功方式2 需要返回服务器数据 data
		//注意事项：写工具API方法时，方法重载不能耦合
		public static SysResult success(Object data) {
			
			return new SysResult(200, "业务调用成功!!!", data);
		}
		
		//成功方式3  可能告知服务器信息及 服务器数据
		public static SysResult success(String msg, Object data) {
				
				return new SysResult(200, msg , data);
		}
}
